﻿using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CL_VisionCommu_Test.Helper
{
    public class CommunicationParameters
    {
        public int ObjectCount { get; set; }
        public string InterfaceDLL { get; set; }
        public string Ip { get; set; }
        public int Port { get; set; }
        public int Timeout { get; set; }
        public int BufferSize { get; set; }
        public int TraceToDebugger { get; set; }
        public int TraceLevel { get; set; }
        public int TraceWriteThreadID { get; set; }
        public int InheritTrace { get; set; }
        public int IgnoreCRC { get; set; }
        public int Device { get; set; }
        public string Name { get; set; }
        public ObservableCollection<ObjectItems> Objects { get; set; }
    }

    public class ObjectItems
    {
        public int ObjectID { get; set; }
        public int ItemsCount { get; set; }
        public string Name { get; set; }
        public ObservableCollection<ItemDefined> Items { get; set; }
    }

    public class ItemDefined : BindableBase
    {
        public int No { get; set; }
        public string Type { get; set; }
        public int Array { get; set; }
        private string _default;
        public string Default
        {
            get { return _default; }
            set { SetProperty(ref _default, value); }
        }
        private string _name;
        public string Name
        {
            get { return _name; }
            set { SetProperty(ref _name, value); }
        }
        public int MaxSize { get; set; }
        public int ByteLength { get; set; }
    }
}
